
#ifndef _HTTP_COMM_HTTP_INTF_CLIENT_CUSTORM_H_
#define _HTTP_COMM_HTTP_INTF_CLIENT_CUSTORM_H_

#include <stdint.h>
#include <string>

namespace comm
{
namespace http
{
namespace custorm
{

class CHttpRequest;
class CHttpResponse;
class IHttpClient
{
  public:
    virtual ~IHttpClient(void) {}

  public:
    virtual uint32_t Init(void) = 0;

    virtual uint32_t Get(
        const CHttpRequest& rRequest, CHttpResponse& rResponse) = 0;

    virtual uint32_t Post(
        const CHttpRequest& rRequest, const std::string& strPostData, CHttpResponse& rResponse) = 0;

    virtual void SetProxy(
        const std::string& sProxyHost, uint16_t wProxyPort) = 0;

    virtual const std::string& GetProxy(void) const = 0;
 
    virtual const std::string& GetLastError(void) const = 0;
};

}
}
}

#endif // _HTTP_COMM_HTTP_INTF_CLIENT_CUSTORM_H_
